在前面,己經將 Router、Queue、Dispatch 的組合,視為一個個體。為了方便後面的描述,使用 Node 稱呼。
接著,試著修改架構,以符合需求的項目。
需求一:記錄 log 資訊,以便觀察、分析使用情況與追逐問題。
首先想到的作法,就是在 Node 外部,加一個 Logger
,負責處理 Log 的相關事務。
需求二:可以定期回報系統的資訊,例如:己處理數量、等待中的數量…
加入一個Monitor
元件,負責定期撈取 Node 內部的特定資訊。其回報方式,可以使用 Log 的方式,也可以通過不同的協定,將資料傳到外界。
需求三、可設定水位,當系統負擔大過特定水位時,主動發出通知。
設定水位,最直接的做法,當然利用 Configuration
的方式,進行水位的設定。再增加 Monitor
的功能,讓該模組可以發送訊息的外部的通知系統,例如:email、slack 等等。